/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package funda.appius.Presupuesto;

import funda.appius.arquitectura.AbstractFunda;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author payo
 */
public class Presupuesto extends AbstractFunda
{
    
    private Listado_Insumos ListadoInsumos;
    private Listado_Indirectos ListadoIndirectos;
    private double Financiamiento, Utilidad, CargosAdicionales;
    private int IdPresupuesto, IdProyecto;

    public double getCargosAdicionales() {
        return CargosAdicionales;
    }

    public void setCargosAdicionales(double CargosAdicionales) {
        this.CargosAdicionales = CargosAdicionales;
    }

    public double getFinanciamiento() {
        return Financiamiento;
    }

    public void setFinanciamiento(double Financiamiento) {
        this.Financiamiento = Financiamiento;
    }

    public int getIdPresupuesto() {
        return IdPresupuesto;
    }

    public void setIdPresupuesto(int IdPresupuesto) {
        this.IdPresupuesto = IdPresupuesto;
    }

    public int getIdProyecto() {
        return IdProyecto;
    }

    public void setIdProyecto(int IdProyecto) {
        this.IdProyecto = IdProyecto;
    }

    public Listado_Indirectos getListadoIndirectos() {
        return ListadoIndirectos;
    }

    public void setListadoIndirectos(Listado_Indirectos ListadoIndirectos) {
        this.ListadoIndirectos = ListadoIndirectos;
    }

    public Listado_Insumos getListadoInsumos() {
        return ListadoInsumos;
    }

    public void setListadoInsumos(Listado_Insumos ListadoInsumos) {
        this.ListadoInsumos = ListadoInsumos;
    }

    public double getUtilidad() {
        return Utilidad;
    }

    public void setUtilidad(double Utilidad) {
        this.Utilidad = Utilidad;
    }
    
    
    
    public Presupuesto()
    {
        super();
    }
    
    public Presupuesto(int IdProyecto) {
        super();
        this.Financiamiento = 0;
        this.Utilidad = 0;
        this.CargosAdicionales = 0;
        this.IdProyecto = IdProyecto;
        this.IdPresupuesto = Integer.parseInt(insertarId().toString());
        this.ListadoIndirectos = new Listado_Indirectos(this.IdPresupuesto);
        this.ListadoInsumos = new Listado_Insumos(this.IdPresupuesto);
    }
    
    public Presupuesto(double Financiamiento, double Utilidad, double CargosAdicionales, int IdProyecto) {
        super();
        this.Financiamiento = Financiamiento;
        this.Utilidad = Utilidad;
        this.CargosAdicionales = CargosAdicionales;
        this.IdProyecto = IdProyecto;
        this.IdPresupuesto = Integer.parseInt(insertarId().toString());
    }
    
    @Override
    protected void fillFunda(ResultSet row) {
         try{
            int x =0;
            this.IdPresupuesto = row.getInt(++x);
            this.Financiamiento = row.getDouble(++x);
            this.Utilidad = row.getDouble(++x);
            this.CargosAdicionales = row.getDouble(++x);
            this.IdProyecto = row.getInt(++x);
            this.ListadoInsumos = (Listado_Insumos)AbstractFunda.getAbstractFunda(new Listado_Insumos(), IdPresupuesto, "listadoinsumos", id);
            this.ListadoIndirectos = (Listado_Indirectos)AbstractFunda.getAbstractFunda(new Listado_Indirectos(), IdPresupuesto, "listadoindirectos", id);
         }
        catch(Exception e){}
    }

    @Override
    protected void Comandos() {
        this.id = "IdPresupuesto";
        this.tabla = "presupuesto";
        this.strDelete = "DeletePresupuesto";
        this.strInsertar = "InsertarPresupuesto";
        this.strInsertarId = "InsertarIdPresupuesto";
        this.strUpdate = "UpdatePresupuesto";
    }

    @Override
    public ArrayList<Object> getAtributos() {
        ArrayList<Object> lst = new ArrayList<Object>();
        lst.add(Financiamiento);
        lst.add(Utilidad);
        lst.add(CargosAdicionales);
        lst.add(IdProyecto);
        lst.add(IdPresupuesto);
        return lst;
    }
    
     @Override
    public Presupuesto get(Object id) {
        AbstractFunda abs = AbstractFunda.getAbstractFunda(new Presupuesto(),id,tabla,this.id);
        Presupuesto c = (Presupuesto)abs;
        return c;
    }
    
    public ArrayList<Presupuesto> getAll() {
        List<AbstractFunda> abs = AbstractFunda.getAll(tabla,id,this.getClass());
        ArrayList<Presupuesto> lst = new ArrayList<Presupuesto>();
        for(AbstractFunda af : abs)
            lst.add((Presupuesto)af);
        return lst;
    }
        
}
